package com.atguigu.lease.web.admin.custom.converter;

import com.atguigu.lease.model.enums.ItemType;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

/**
 * ClassName:StringToBaseEnumConverterFactory
 * Package: com.atguigu.lease.web.admin.custom.converter
 * Description:
 *
 * @Author Makabaka
 * @Create 2024/9/20 18:09
 * @Version 1.0
 */
//SpringMVC提供的一套用于处理类型转换的方案
//@Component
//注释掉是使用了工厂模式  不用mvc提供的转换模式
//在此处的加入容器是加入到spring容器中，并不是SpringMVC中，如果不写相应配置类将其作用到SpringMVC上则转换器无效
//在此处又写了一个WebMvcConfiguration配置类

//                                                                此处的ItemType代表的就是枚举类
public class StringToBaseEnumConverter implements Converter<String, ItemType> {

    @Override
    public ItemType convert(String source) {
//        获取到枚举类中每一个值  在本例中是APARTMENT、ROOM
        for (ItemType value : ItemType.values()) {
            if (value.getCode().equals(Integer.valueOf(source))){
                return value;
            }
        }
        throw new RuntimeException("参数传递错误");
    }
}
